import 'package:jpush_flutter/jpush_flutter.dart';

class JPushInit{

    final JPush jpush = new JPush();  //初始化极光插件

    JPushInit(){
        applyPushAuthority();
        initPlatformState();
        jPushID();
    }

    // 初始化方法
    static initPlatformState(){
        final JPush jpush = new JPush();
        try {
            jpush.addEventHandler(
                onReceiveNotification: (Map<String, dynamic> message) async {
                    print(">>>>>>>>>>>>>>>>>flutter 接收到推送: $message");
                    print("接收到推送: $message");
                }
            );
            jpush.setup(
                appKey: "f2f39ce3644b8e14c5accf07",
                channel: "theChannel",
                production: false,
                debug: false, // 设置是否打印 debug 日志
            );
        }catch(e){
            print('平台版本获取失败，请检查！');
            print(e);
        }
    }
    // 获取RID
    static jPushID(){
        final JPush jpush = new JPush();
        try{
            jpush.getRegistrationID().then((rid) {
                print(">>>>>>>>>>>>>>>>>flutter RID: $rid");
                return rid;
            });
        }catch(e){
            print(e);
        }
    }
    // 获取通知权限
    applyPushAuthority(){
        jpush.applyPushAuthority(new NotificationSettingsIOS(
            sound: true,
            alert: true,
            badge: true));
    }
    
}



//1.注册使用方法
//开始函数的initState中注册 JPushInit();


// 本地通知-页面使用方法（页面中new对象）
// final JPush jpush = new JPush();  //初始化极光插件

// 本地通知-页面使用方法（按钮）
// FlatButton(
//     child: new Text('发送推送消息\n'),
//     onPressed: () {
//         // 三秒后出发本地推送
//         var fireDate = DateTime.fromMillisecondsSinceEpoch(DateTime.now().millisecondsSinceEpoch + 3000);
//         var localNotification = LocalNotification(
//             id: 234,
//             title: '测试推送title',
//             buildId: 1,
//             content: '看到了说明已经成功了',
//             fireTime: fireDate,
//             subtitle: '一个测试',
//         );
//         jpush.sendLocalNotification(localNotification).then((res) {
//             setState(() {
//                 print(res);
//             });
//         });

//     }
// )